
/*Zwischen der Zerteilmaschine und den Schleifmaschinen gibt es einen Behaelter fuer die rohen Staebchen, 
 * zwischen den Schleifmaschinen und den Verpackungsmaschinen einen Behaelterue fuer die geschliffenen Staebchen 
 * und nach den Verpackungsmaschinen einen Behaelter fuer die verpackten Staebchenpaare. 
 * Wenn ein Behaelter voll ist, muessen die betroffenen Maschinen so lange warten, 
 * bis im Behaelter wieder genug Platz ist, um etwas hineinzulegen.
 */

public class Container extends Thread{
	
	//Vorhandene staebchen//
	private int stock;
	private int kapazitaet;
	
	public Container(int kap)
	{
		this.kapazitaet = kap;
		this.stock = 0;
	}
	
	/*
	 * methode fuer die maschinen
	 */
	//IN: void
	//Out: boolean (Platz frei)
	public synchronized boolean add()
	{
		if(this.stock >= this.kapazitaet)
			return false;
		else
		{
		this.stock++;
		return true;
		}
	}
	
	//Nur eine Maschine kann auf einmal etwas aus dem Container nehmen
	//IN: void
	//Out: boolean (Staebchen / Holz da)
	public synchronized boolean take()
	{
		if(this.stock <=0)
		{
			return false;
		}
		else
		{
		this.stock--;
		return true;
		}
	}
	
	//IN: void
	//Out: int
	public int getstock()
	{
		return this.stock;
	}
}
